## Super Simple Setup (Chapter 4)
## Open vSwitch Network Configuration
## CONTROLLER ONLY!!

# NOTE: This file does not contain interface configuration steps.

# Create new database for Neutron w/ OVS

mysql -u root -popenstack -e "CREATE DATABASE ovs_neutron;"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON ovs_neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';"
mysql -u root -popenstack -e "GRANT ALL PRIVILEGES ON ovs_neutron.* TO 'neutron'@'%';"

crudini --set /etc/neutron/neutron.conf database connection mysql://neutron:neutron@controller/ovs_neutron
crudini --set /etc/neutron/neutron.conf DEFAULT core_plugin neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2

ln -s /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini /etc/neutron/plugin.ini

neutron-db-manage --config-file /etc/neutron/plugin.ini --config-file /etc/neutron/neutron.conf stamp havana

## Configure Nova Settings ##
crudini --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
crudini --set /etc/nova/nova.conf DEFAULT libvirt_vif_driver nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver

service openstack-nova-api restart

## Configure DHCP ##
crudini --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver

## Create Bridges ##
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS bridge_mappings physnet1:br-eth1

service openvswitch start
chkconfig openvswitch on
ovs-vsctl add-br br-eth1
ovs-vsctl add-port br-eth1 eth1
ovs-vsctl add-br br-int

## Configure OVS Plugin ##
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS tenant_network_type vlan
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS network_vlan_ranges physnet1:30:33
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS enable_tunneling true
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS tunnel_id_ranges 1:1000
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini OVS local_ip 172.18.0.100
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini database connection mysql://neutron:neutron@controller/ovs_neutron


## Restart Services ##
service neutron-openvswitch-agent restart
chkconfig neutron-openvswitch-agent on
service neutron-server restart
service neutron-dhcp-agent restart

